﻿var piso;
$(document).ready(main);


function main() {

    $("#botonRegistro").click(registrarAreaComun);
    $("#botonBuscar").click(buscarAreaComun);
    $("#botonCancelar").click(menuAreaComun);
    $("#EliminarBoton").click(eliminarAreaComun);
    $("#EliminarBoton").hide();
    $("#ModificarBoton").hide();
    cargarEdificios();
    cargarTiposAreaComun();
}

function refrescar() {

    jQuery("#Edificio option").each(function () {
        jQuery(this).attr("selected", "selected");
        if (jQuery(this).val() == "") {
            jQuery(this).attr("selected", "selected");
            return false;
        }
    });

    jQuery("#Tipo option").each(function () {
        if (jQuery(this).val() == "") {
            jQuery(this).attr("selected", "selected");
            return false;
        }
    });

    jQuery("#Pisito option").each(function () {
        jQuery(this).attr("selected", "selected");
        if (jQuery(this).val() == "") {
            jQuery(this).attr("selected", "selected");
            return false;
        }
    });

    document.getElementById("Ubicacion").value = "";

    $("input:radio[name='Reservable']")[0].checked = false;
    $("input:radio[name='Reservable']")[1].checked = false;

}

function cargarPisosAreaComun() {
    var enviar = {
        Nombre: "",
        Id_Edificio: $("#EdificioAreaComun").val()
    }

    console.log(enviar);

    var jsonData = JSON.stringify(enviar);

    $.ajax({
        type: "POST",
        data: jsonData,
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        url: "cargarPisos",
        success: function (data) {

            console.log(data);

            var lista = data.listaPiso;

            var num_pisos = lista[0];
            var num_sotanos = lista[1];

            $("#PisitoAreaComun").find('option').remove().end().append("<option selected=\"selected\"></option>");

            for (var i = 1; i <= num_pisos; i++) {
                $("#PisitoAreaComun").append("<option value = \"P" + i + "\">P" + i + "</option>");
            }
            if (num_sotanos != 0) {
                for (var j = 1; j <= num_sotanos; j++) {
                    $("#PisitoAreaComun").append("<option value = \"S" + j + "\">S" + j + "</option>");
                }
            }
            jQuery("#PisitoAreaComun option").each(function () {
                if (jQuery(this).val() == piso) {
                    jQuery(this).attr("selected", "selected");
                    return false;
                }
            }); 
        }
    });
}

function cargarPisos() {
    var enviar = {
        Nombre: "",
        Id_Edificio: $("#Edificio").val()
    }

    console.log(enviar);

    var jsonData = JSON.stringify(enviar);

    $.ajax({
        type: "POST",
        data: jsonData,
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        url: "cargarPisos",
        success: function (data) {

            console.log(data);

            var lista = data.listaPiso;

            var num_pisos = lista[0];
            var num_sotanos = lista[1];

            $("#Pisito").find('option').remove().end().append("<option></option>");

            for (var i = 1; i <= num_pisos; i++) {
                $("#Pisito").append("<option value = \"P" + i + "\">P" + i + "</option>");
            }
            if (num_sotanos != 0) {
                for (var j = 1; j <= num_sotanos; j++) {
                    $("#Pisito").append("<option value = \"S" + j + "\">S" + j + "</option>");
                }
            }
        }
    });
}

function cargarEdificios() {
    var enviar = {
        Nombre: "",
        Id_Edificio: ""
    }

    console.log(enviar);

    var jsonData = JSON.stringify(enviar);

    $.ajax({
        type: "POST",
        data: jsonData,
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        url: "cargarEdificios",
        success: function (data) {

            console.log(data);

            var lista = data.listaEdificio;

            $("#Edificio").find('option').remove().end().append("<option></option>");
            $.each(lista, function (i, item) {
                $("#Edificio").append("<option value = \"" + item.Id_Edificio + "\">" + item.Nombre + "</option>");
            });

            $("#EdificioAreaComun").find('option').remove().end().append("<option></option>");
            $.each(lista, function (i, item) {
                $("#EdificioAreaComun").append("<option value = \"" + item.Id_Edificio + "\">" + item.Nombre + "</option>");
            });
        }
    });
}

function cargarTiposAreaComun() {
    var enviar = {
        nombre_area: "",
        Estado: 0
    }

    console.log(enviar);

    var jsonData = JSON.stringify(enviar);

    $.ajax({
        type: "POST",
        data: jsonData,
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        url: "cargarTiposAreaComun",
        success: function (data) {

            console.log(data);

            var lista = data.listaTipoAreaComun;

            

            $("#Tipo").find('option').remove().end().append("<option></option>");
            $.each(lista, function (i, item) {
                $("#Tipo").append("<option value = \"" + item.nombre_area + "\">" + item.nombre_area + "</option>");
            });

            $("#TipoAreaComun").find('option').remove().end().append("<option></option>");
            $.each(lista, function (i, item) {
                $("#TipoAreaComun").append("<option value = \"" + item.nombre_area + "\">" + item.nombre_area + "</option>");
            });
        }
    });
}
function menuAreaComun() {
    window.history.back();
}

function mostrarFormRegistro() {
    $("#registro").show("slow");;
}

function mostrarFormBusqueda() {
    $("#busqueda").show("slow");
    $("#registro").hide();
}


function vaciarErrores() {
    document.getElementById("errorArea").innerHTML = "";
    document.getElementById("errorUbicacion").innerHTML = "";
}

function registrarAreaComun() {

    var enviarsela = {
        Id_Edificio: $("#Edificio").val(),
        Nombre_Area: $("#Tipo").val(),
        Piso: $("#Pisito").val(),
        Area: $("#Area").attr("value"),
        Ubicacion: $("#Ubicacion").attr("value"),
        Es_Reservable: $("input[name='Reservable']:checked").val()
    }

    fv = new formValidator();
    vaciarErrores();

    if (!fv.isSelectedSelect(document.getElementById("Edificio"))) {
        fv.raiseError("");
    }
    if (!fv.isSelectedSelect(document.getElementById("Tipo"))) {
        fv.raiseError("");
    }
    if (!fv.isSelectedSelect(document.getElementById("Pisito"))) {
        fv.raiseError("");
    }
    if (fv.isEmpty(document.getElementById("Area").value)) {
        document.getElementById("Area").value = 0;
    }
    else {
        if (isNaN(document.getElementById("Area").value)) {
            fv.raiseError("");
            document.getElementById("errorArea").innerHTML = "Solo Números";
            document.getElementById("Area").value = 0;
        }
    }
    if (fv.isEmpty(document.getElementById("Ubicacion").value)) {
        document.getElementById("errorUbicacion").innerHTML = "";
    }
    else {
        if (!fv.isAlphaNumeric(document.getElementById("Ubicacion").value)) {
            fv.raiseError("");
            document.getElementById("errorUbicacion").innerHTML = "Solo Números y Letras";
        }
    }

    if (!fv.isCheckedRadioButton($("input:radio[name='Reservable']"))) {
        fv.raiseError("");
    }

    if (fv.numErrors() < 1) {
        console.log(enviarsela);

        var jsonData = JSON.stringify(enviarsela);

        $.ajax({
            type: "POST",
            data: jsonData,
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            url: "registrarAreaComun",
            beforeSend: esperarRegistro,
            success: llegadaRegistro
        });
        return true;
    }
    else {
        fv.displayErrors();
        return false;
    }
}

function esperarRegistro() {

}

function llegadaRegistro(data) {
    window.history.back();
    alert(data.me);
}

function buscarAreaComun() {

    var enviar = {
        Id_Edificio: $("#Edificio").val(),
        Nombre_Area: $("#Tipo").val(),
        Piso: $("#Pisito").val(),
        Ubicacion: $("#Ubicacion").attr("value"),
        Es_Reservable: $("input[name='Reservable']:checked").val(),
        Nombre_Edificio: $("#Edificio").text()
    }

    var jsonData = JSON.stringify(enviar);

    $.ajax({
        type: "POST",
        data: jsonData,
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        url: "buscarAreaComun",
        beforeSend: esperarLista(),
        success: llegadaLista
    });
}

function esperarLista() { 

}
function llegadaLista(data) {

    console.log(data);

    var lista = data.listaAreaComun;


    var escritor = "";

    if (lista.length > 0) {
        escritor += "<table><thead><tr><th></th>" +
                    "<th style=\"display:none\">Id_Edificio</th>" +
                    "<th>Edificio</th>" +
                    "<th style=\"display:none\">Id_Area_Comun</th>" +
                    "<th>Área Común</th>" +
                    "<th>Piso</th>" +
                    "<th>Área</th>" +
                    "<th>Ubicación</th>" +
                    "<th>Reservable</th>" +
                    "</tr></thead>";

        escritor += "<tbody id='resultados'>";

        $.each(lista, function (i, item) {

            escritor += "<tr>";

            escritor += '<td>' + "<input id=" + "\"RadioButton1\" " + "name=" + "\"R1\" " + "type=" + "\"radio\" " + "value=" + "\"1\"" + "/>" + '</td>';
            escritor += '<td style=\"display:none\">' + item.Id_Edificio + '</td>';
            escritor += '<td>' + item.Nombre_Edificio + '</td>';
            escritor += '<td style=\"display:none\">' + item.Id_Area_Comun + '</td>';
            escritor += '<td>' + item.Nombre_Area + '</td>';
            escritor += '<td>' + item.Piso + '</td>';
            escritor += '<td>' + item.Area + '</td>';
            escritor += '<td>' + item.Ubicacion + '</td>';
            if (item.Es_Reservable === 1) {
                escritor += '<td>' + "Si" + '</td>';
            }
            else {
                escritor += '<td>' + "No" + '</td>';
            }
            escritor += "</tr>";
        });

        escritor += "</tbody>";

        escritor += "</table>";

        $("#EliminarBoton").show();
        $("#ModificarBoton").show();

        $("#tablaDinamica").html(escritor);

        if (lista.length > 0) {
            $("#holder").jPages({
                containerID: "resultados",
                perPage: 10,
                delay: 20,
                startPage: 1,
                midRange: 3,
                animation: "flipInY"
            });
            $("#holder").show();
        }
    }

    else{
        escritor += "<p>No se encontró ninguna coincidencia</p>";
        $("#tablaDinamica").html(escritor);
        $("#holder").hide();
        $("#EliminarBoton").hide();
        $("#ModificarBoton").hide();
    }

   

}

function eliminarAreaComun() {
    if ($("input:radio[name='R1']").is(":checked")) {
        var id_area,nombre_edificio,nombre_area, piso;
        $("input:radio[name='R1']:checked").parents("tr").children("td").each(function (index2) {
            switch (index2) {
                case 2:
                    nombre_edificio = $(this).text();
                    break;
                case 3:
                    id_area_comun = $(this).text();
                    break;
                case 4:
                    nombre_area = $(this).text();
                    break;
                case 5:
                    piso = $(this).text();
                    break;
            }
        })

        var question = confirm("Desea eliminar el objeto seleccionado");

        if (question != 0) {
            var enviar = {
                Id_Area_Comun: id_area_comun,
                Nombre_Area: nombre_area,
                Nombre_Edificio: nombre_edificio,
                Piso: piso
            }

            var jsonData = JSON.stringify(enviar);

            $.ajax({
                type: "POST",
                data: jsonData,
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                url: "eliminarAreaComun",
                beforeSend: esperarEliminar(),
                success: llegadaEliminar
            });
        }
    }
    else {
        alert("Debe seleccionar una fila");
    }
}

function esperarEliminar() {
}

function llegadaEliminar(data) {
    alert(data.me);
    buscarAreaComun();
}

$(function () {
    var tips = $(".validateTips"), allFields = $([]);

    function updateTips(t) {
        tips
                .text(t)
                .addClass("ui-state-highlight");
        setTimeout(function () {
            tips.removeClass("ui-state-highlight", 1500);
        }, 500);
    }

    $("#dialog-form").dialog({
        autoOpen: false,
        height: 600,
        width: 850,
        modal: true,
        buttons: {
            Aceptar: function () {
                var enviar = {
                    Id_Edificio: $("#EdificioAreaComun").val(),
                    Nombre_Area: $("#TipoAreaComun").val(),
                    Piso: $("#PisitoAreaComun").val(),
                    Area: $("#AreaAreaComun").attr("value"),
                    Ubicacion: $("#UbicacionAreaComun").attr("value"),
                    Es_Reservable: $("input[name='ReservableAreaComun']:checked").val(),
                    Id_Area_Comun: $("#Id_Area_Comun").val()
                }

                fv = new formValidator();
                vaciarErrores();

                if (!fv.isSelectedSelect(document.getElementById("EdificioAreaComun"))) {
                    fv.raiseError("");
                }
                if (!fv.isSelectedSelect(document.getElementById("TipoAreaComun"))) {
                    fv.raiseError("");
                }
                if (!fv.isSelectedSelect(document.getElementById("PisitoAreaComun"))) {
                    fv.raiseError("");
                }
                if (fv.isEmpty(document.getElementById("AreaAreaComun").value)) {
                    document.getElementById("Area").value = 0;
                }
                else {
                    if (isNaN(document.getElementById("AreaAreaComun").value)) {
                        fv.raiseError("");
                        document.getElementById("errorArea").innerHTML = "Solo Números";
                        document.getElementById("AreaAreaComun").value = 0;
                    }
                }
                if (fv.isEmpty(document.getElementById("UbicacionAreaComun").value)) {
                    document.getElementById("errorUbicacion").innerHTML = "";
                }
                else {
                    if (!fv.isAlphaNumeric(document.getElementById("UbicacionAreaComun").value)) {
                        fv.raiseError("");
                        document.getElementById("errorUbicacion").innerHTML = "Solo Números y Letras";
                    }
                }

                if (!fv.isCheckedRadioButton($("input:radio[name='ReservableAreaComun']"))) {
                    fv.raiseError("");
                }

                if (fv.numErrors() === 0) {
                    var jsonData = JSON.stringify(enviar);

                    $.ajax({
                        type: "POST",
                        data: jsonData,
                        dataType: "json",
                        contentType: "application/json; charset=utf-8",
                        url: "modificarAreaComun",
                        success: function (data) {
                            alert(data.me);
                            buscarAreaComun();
                        }
                    });

                    $(this).dialog("close");
                }
                else {
                    fv.displayErrors();
                }

            },
            Cancelar: function () {
                $(this).dialog("close");
            }
        },
        close: function () {
            allFields.val("").removeClass("ui-state-error");
        }
    });

    $("#ModificarBoton").click(function () {
        if ($("input:radio[name='R1']").is(":checked")) {
            $("#dialog-form").dialog("open");
            var bValid = true;
            allFields.removeClass("ui-state-error");
            if (bValid) {
                if ($("input:radio[name='R1']:checked")) {
                    var id_area_comun, id_edificio, nombre_area, area, ubicacion, es_reservable;

                    $("input:radio[name='R1']:checked").parents("tr").children("td").each(function (index2) {
                        switch (index2) {
                            case 1:
                                id_edificio = $(this).text();
                                break;
                            case 3:
                                id_area_comun = $(this).text();
                                break;
                            case 4:
                                nombre_area = $(this).text();
                                break;
                            case 5:
                                piso = $(this).text();
                                break;
                            case 6:
                                area = $(this).text();
                                break;
                            case 7:
                                ubicacion = $(this).text();
                                break;
                            case 8:
                                es_reservable = $(this).text();
                                if (es_reservable === "Si") {
                                    es_reservable = "1";
                                }
                                else {
                                    es_reservable = "2";
                                }
                                break;
                        }
                    })

                    jQuery("#EdificioAreaComun option").each(function () {
                        if (jQuery(this).val() == id_edificio) {
                            jQuery(this).attr("selected", "selected");
                            return false;
                        }
                    });

                    jQuery("#TipoAreaComun option").each(function () {
                        if (jQuery(this).val() == nombre_area) {
                            jQuery(this).attr("selected", "selected");
                            return false;
                        }
                    });

                    document.getElementById("Id_Area_Comun").value = id_area_comun;
                    document.getElementById("AreaAreaComun").value = area;
                    document.getElementById("UbicacionAreaComun").value = ubicacion;

                    if ($("input:radio[name='ReservableAreaComun']")[0].value === es_reservable) {
                        $("input:radio[name='ReservableAreaComun']")[0].checked = true;
                    }
                    else {
                        $("input:radio[name='ReservableAreaComun']")[1].checked = true;
                    }

                    cargarPisosAreaComun();

                }
            }
        }
        else {
            alert("Debe seleccionar una fila");
        }
    });

});